home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / cross / GBDK-2.0.lha / GBDK / examples / rand.c < prev    next >
C/C++ Source or Header  |  1998-10-01  |  2KB  |  61 lines

  1. /***************************************************************************
  2.  *                                                                         *
  3.  * Module  : rand.c                                                        *
  4.  *                                                                         *
  5.  * Purpose : A test for the rand() function, for the GBDK                  *
  6.  *                                                                         *
  7.  * Version : 1, Januari 6 1998                                             *
  8.  *                                                                         *
  9.  * Author  : Luc Van den Borre ( Homepage : NOC.BASE.ORG )                 *
  10.  *                                                                         *
  11.  **************************************************************************/
  12.  
  13. #include <gb.h>
  14. #include <rand.h>
  15. #include <drawing.h>
  16. #include <stdio.h>
  17.  
  18. UBYTE accu[80];
  19. UBYTE accua[80];
  20.  
  21. fixed seed;
  22.  
  23. void main(void)
  24. {
  25.   UBYTE r, s, t, u;
  26.  
  27.   for(r = 0; r != 80; r++) {
  28.     accu[r] = 0;
  29.     accua[r] = 0;
  30.   }
  31.  
  32.   /* We use the DIV register to get a random initial seed */
  33.   puts("Getting seed");
  34.   puts("Push any key (1)");
  35.   waitpad(0xFF);
  36.   waitpadup();
  37.   seed.b.l = DIV_REG;
  38.   puts("Push any key (2)");
  39.   waitpad(0xFF);
  40.   waitpadup();
  41.   seed.b.h = DIV_REG;
  42.  
  43.   /* initarand() calls initrand() */
  44.   initarand(seed.w);
  45.  
  46.   do {
  47.     r = rand();
  48.     s = arand();
  49.  
  50.     if(r < 80) {
  51.       t = ++accu[r];
  52.       plot(r, 144-t, LTGREY, SOLID);
  53.     }
  54.     if(s < 80) {
  55.       u = ++accua[s];
  56.       plot(s+80, 144-u, DKGREY, SOLID);
  57.     }
  58.   }
  59.   while(t != 144 && u != 144);
  60. }
  61.